/* 
中间件(middleware)：
   定义多个全局中间件
   执行顺序和注册顺序有关

    应用场景：
       1.面向切面编程
       2.权限验证、日志记录等  

  中间件作用：
      共享 req , res
      基于这个特性，我们可以在上游的中间件中，统一为 req 或 res 对象添加自定义属性或方法    
*/
// 导入 expres 模块
const express = require("express");

// 创建 express 的服务器实例
const app = express();

// 1. 定义并注册中间件 1
app.use((req, res, next) => {
  console.log("调用了中间件1");
  req.hero = "吕布";
  next();
});

// 2. 定义并注册中间件 2
app.use((req, res, next) => {
  console.log("调用了中间件2");
  req.age = 22;
  next();
});

app.get("/game", (req, res) => {
    console.log(req.hero,req.age);
  console.log("game");
  res.send("王者荣耀" + req.hero + req.age);    //客户端接收
});

// 指定端口号，并启动服务
app.listen(8080, () => {
  console.log("服务已启动, 127.0.0.1:8080");
});
